package cn.chenc.framework.core.model;

import java.util.Set;

/**
 * 　@description: LoginUser抽象接口
 * 　@author secret
 * 　@date 2021/7/1 22:25
 *
 */
public interface AbstractLoginUser {

    /**
     * 获取token
     * @return
     */
    String getToken();

    /**
     * 设置token
     * @param token
     */
    void setToken(String token);

    /**
     * 获取用户名
     * @return
     */
    String getUsername();

    /**
     * 获取登录时间
     * @return
     */
    Long getLoginTime();

    /**
     * 设置登录时间
     * @param loginTime
     */
    void setLoginTime(Long loginTime);

    /**
     * 获取过期时间
     * @return
     */
    Long getExpireTime();

    /**
     * 设置过期时间
     * @param expireTime
     */
    void setExpireTime(Long expireTime);

    /**
     * 获取ip地址
     * @return
     */
    String getIpaddr();

    /**
     * 设置ip地址
     * @param ipaddr
     */
    void setIpaddr(String ipaddr);

    /**
     * 获取登录地址
     * @return
     */
    String getLoginLocation();

    /**
     * 设置登录地址
     * @param loginLocation
     */
    void setLoginLocation(String loginLocation);

    /**
     * 获取浏览器
     * @return
     */
    String getBrowser();

    /**
     * 设置浏览器
     * @param browser
     */
    void setBrowser(String browser);

    /**
     * 获取操作系统
     * @return
     */
    String getOs();

    /**
     * 设置操作系统
     * @param os
     */
    void setOs(String os);

    Set<String> getPermissions();

    void setPermissions(Set<String> permissions);

    Set<String> getRoles();

    void setRoles(Set<String> roles);

    LoginUserDetails getUser();

    void setUser(LoginUserDetails user);
}
